iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0

在學習關聯式資料庫的時候,一定會學到ACID

ACID,是指資料庫管理系統(DBMS)在寫入或更新資料的過程中,為保證交易(transaction)是正確可靠的,所必須具備的四個特性:原子性(atomicity,或稱不可分割性)、一致性(consistency)、隔離性(isolation,又稱獨立性)、持久性(durability)。
來源:https://zh.wikipedia.org/zh-tw/ACID

而這篇文章想特別分享關於Consistency的一些心得

關於Consistency的定義如下

在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設約束、觸發器、級聯回滾等。
來源:https://zh.wikipedia.org/zh-tw/ACID

從敘述中可以發現,如果要完成Consistency,我們需要有事務(transaction)來保證query的完整性,需要交易隔離級別(isolation level)來保證query不互相干擾,而且需要redo log等機制來保證資料一定會成功寫入硬碟中

transaction是用來滿足atomicity
isolation level是用來滿足isolation
而redo log等機制是來滿足durability

但資料庫本身沒有一個特別的機制在滿足Consistency的

AID是因,而C是結果

另外,也想提一個有趣的點
如果有接觸過noSQL,會聽過另一個跟ACID很像的觀念是BASE,這個有點像是想要跟ACID打對台而取名的(ACID是酸,BASE是鹼),在第一次聽到這個說法的時候,也覺得十分有趣呢


上一篇
Use-the-index-luke 讀後筆記-8(誰應該要了解index)
下一篇
Isolation Level與樂觀鎖/悲觀鎖
系列文
從身邊神人大大身上學到的那些事28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言